package com.example.demo.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

@TableName(value ="pm_employee")
@Data
public class PmEmployee implements Serializable {
    /**
     * 
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 姓名
     */
    @TableField(value = "name")
    private String name;

    /**
     * 性别
     */
    @TableField(value = "sex")
    private String sex;

    /**
     * 年龄
     */
    @TableField(value = "age")
    private String age;

    /**
     * 生日
     */
    @TableField(value = "birth")
    private String birth;

    /**
     * 民族
     */
    @TableField(value = "ethnic")
    private String ethnic;

    /**
     * 证件类型
     */
    @TableField(value = "idcard_type")
    private String idcardType;

    /**
     * 身份证号
     */
    @TableField(value = "idcard_number")
    private String idcardNumber;

    /**
     * 学历
     */
    @TableField(value = "degree")
    private String degree;

    /**
     * 毕业院校
     */
    @TableField(value = "graduate_school")
    private String graduateSchool;

    /**
     * 专业
     */
    @TableField(value = "major")
    private String major;

    /**
     * 联系方式
     */
    @TableField(value = "phone")
    private String phone;

    /**
     * 岗位
     */
    @TableField(value = "position")
    private String position;

    /**
     * 部门
     */
    @TableField(value = "department")
    private String department;

    /**
     * 职称
     */
    @TableField(value = "professional_title")
    private String professionalTitle;

    /**
     * 专业证书
     */
    @TableField(value = "professional_certificate")
    private String professionalCertificate;

    /**
     * 用工形式
     */
    @TableField(value = "employment_type")
    private String employmentType;

    /**
     * 入职时间
     */
    @TableField(value = "onboarding_time")
    private String onboardingTime;

    /**
     * 开始工作时间
     */
    @TableField(value = "work_start_time")
    private String workStartTime;

    /**
     * 户口所在地
     */
    @TableField(value = "hukou_address")
    private String hukouAddress;

    /**
     * 籍贯
     */
    @TableField(value = "ancestral_place")
    private String ancestralPlace;

    /**
     * 政治面貌
     */
    @TableField(value = "political_status")
    private String politicalStatus;

    /**
     * 入团时间
     */
    @TableField(value = "league_joining_time")
    private String leagueJoiningTime;

    /**
     * 入党时间
     */
    @TableField(value = "party_joining_time")
    private String partyJoiningTime;

    /**
     * 婚姻状况
     */
    @TableField(value = "marital_status")
    private String maritalStatus;

    /**
     * 家庭住址
     */
    @TableField(value = "address")
    private String address;

    /**
     * 试用期
     * 一个时间段
     */
    @TableField(value = "probation_period")
    private String probationPeriod;

    /**
     * 特长
     */
    @TableField(value = "strong_point")
    private String strongPoint;

    /**
     * 是否离职（1：是，0：否）
     */
    @TableField(value = "is_leave")
    private Boolean isLeave;

    /**
     * 离职（合同终止）时间
     */
    @TableField(value = "terminate_time")
    private String terminateTime;

    /**
     * 离职原因
     */
    @TableField(value = "leave_reason")
    private String leaveReason;

    /**
     * 是否是正式员工（1：是，0：否）
     */
    @TableField(value = "is_regular")
    private Boolean isRegular;

    /**
     * 任职状态（试用期、正式员工、已离职）
     */
    @TableField(value = "is_probation")
    private String isProbation;

    /**
     * 岗序状况：经营层、中层、普通员工、其他（实习/协议/兼职）
     */
    @TableField(value = "position_status")
    private String positionStatus;

    /**
     * 所属公司
     */
    @TableField(value = "company")
    private String company;

    /**
     * 招聘来源（应届生、社会招聘、集团内部跨级调入、平台公司调入、集团外部调入）
     */
    @TableField(value = "recruitment_source")
    private String recruitmentSource;

    /**
     * 备注
     */
    @TableField(value = "comment")
    private String comment;
    /**
     * 劳动合同签订时间
     */
    @TableField(value = "labor_contract_time")
    private String laborContractTime;

    /**
     * 招聘公告时间
     */
    @TableField(value = "announcement_time")
    private String announcementTime;

    /**
     * 录用公示时间
     */
    @TableField(value = "publicity_time")
    private String publicityTime;

    /**
     * 试用期工资
     */
    @TableField(value = "probation_salary")
    private BigDecimal probationSalary;

    /**
     * 合同工资总额
     */
    @TableField(value = "contract_salary")
    private BigDecimal contractSalary;

    /**
     * 银行卡卡号
     */
    @TableField(value = "bank_card")
    private String bankCard;

    /**
     * 更衣柜编号
     */
    @TableField(value = "locker")
    private String locker;

    /**
     * 员工卡卡号
     */
    @TableField(value = "employee_card")
    private String employeeCard;

    /**
     * 紧急联系人姓名
     */
    @TableField(value = "emergency_name")
    private String emergencyName;

    /**
     * 紧急联系人联系方式
     */
    @TableField(value = "emergency_contact")
    private String emergencyContact;

    /**
     * 专业相关性
     */
    @TableField(value = "professional_relevance")
    private String professionalRelevance;

    /**
     * 招聘渠道
     */
    @TableField(value = "recruitment_channels")
    private String recruitmentChannels;

    @TableLogic
    @TableField(value = "is_deleted")
    private Boolean isDeleted;

    @TableField(value = "modify_time")
    private String modifyTime;

    @TableField(value = "modify_user")
    private String modifyUser;

    @TableField(value = "add_time")
    private String addTime;

    @TableField(value = "add_user")
    private String addUser;

    @TableField(exist = false)
    private String probationPeriod1;

    @TableField(exist = false)
    private String probationPeriod2;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}